package com.cskaoyan.javase.oop1._10packing;

import jdk.nashorn.internal.objects.NativeNumber;

/**
 * 包装类的使用场景
 *      1.在不太方便使用基本数据类型变量,但又确实是需要一个对应变量时,使用它的包装类型
 *      2.集合（容器）中是不允许装基本数据类型的，可以在集合中使用对应的包装类存储基本数据类型。
 *
 * @since 10:40
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo4 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};
        // arr = null;
        // arr = new int[0];
        // System.out.println(getMax(arr));
        System.out.println(getMax(arr));
    }

    // 需求,求int类型数组的最大值
    /*
        现在输入的数组不要求都是正常的数组,而有可能是长度为0的数组,或者为null
     */
    /*public static int getMax(int[] arr) {
        // 首先要判断输入的arr,如果是null或者长度为0,排除掉,避免程序出错
        if (arr == null || arr.length == 0) {
            System.out.println("输入的数组有误,请重新输入!");
            // 如果返回值类型是int,这里return什么呢? return任何一个int数值都是不合适的
            // 于是就可以将包装类型作为返回值类型,而不是基本数据类型
            // return
        }
        int max = arr[0];
        for (int ele : arr) {
            if (ele > max) {
                max = ele;
            }
        }
        return max;
    }*/

    public static Integer getMax(int[] arr) {
        // 首先要判断输入的arr,如果是null或者长度为0,排除掉,避免程序出错
        if (arr == null || arr.length == 0) {
            System.out.println("输入的数组有误,请重新输入!");
            // 如果用包装类型Integer作为返回值类型,这里可以返回null
            return null;
        }
        int max = arr[0];
        for (int ele : arr) {
            if (ele > max) {
                max = ele;
            }
        }
        return max;
    }
}
